Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

SQL insert with Parameters - δεν επιστρέφει αποτέλεσμα

Îåêßíçóå áðü ôï ìÝëïò leukonas. Τελευταία δημοσίευση από το μέλος leukonas στις 23-11-2010, 16:35. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  23-11-2010, 16:00 61061

    SQL insert with Parameters - δεν επιστρέφει αποτέλεσμα

    Καλησπέρα,

     εχω κολήσει σε κάτι θεωρητικά απλό αλλά δεν ξέρω τι μπορεί να κάνω λάθος και θα ήθελα τη βοήθεια σας.Το πρόβλημα μου είναι σε μια ρουτίνα με την οποία κάνω insert η οποία στο τέλος δεν μου γυριζει αποτέλεσμα.

         private Enum.ReturnValues Save()
        {

            SqlConnection conn = null;
            SqlDataReader dr = null;
            SqlCommand cmd = new SqlCommand();
            string SQL = string.Empty;
            //int ID;

            try
            {
                SQL = "insert into [GeoMapFile] (Name,Path,ParentFK) " +
                      " values " +
                      " (@Name,@Path,@ParentFK)";

                conn = new SqlConnection(GlobalSettings.ConnString);
                conn.Open();

                //cmd = new SqlCommand(SQL, conn);
                cmd.Connection = conn;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = SQL;

                SqlParameter Name = new SqlParameter();
                Name.ParameterName = "@Name";
                Name.Value = SQLServer.DBValid(edName.Text);
                Name.SqlDbType = SqlDbType.NVarChar;
                cmd.Parameters.Add(Name);

                SqlParameter Path = new SqlParameter();
                Path.ParameterName = "@Path";
                Path.Value = SQLServer.DBValid(edName.Text);
                Path.SqlDbType = SqlDbType.NVarChar;
                cmd.Parameters.Add(Path);

                SqlParameter ParentFK = new SqlParameter();
                ParentFK.ParameterName = "@ParentFK";
                ParentFK.Value = 0;
                ParentFK.SqlDbType = SqlDbType.Int;
                cmd.Parameters.Add(ParentFK);

                dr = cmd.ExecuteReader(); -->εδώ δεν μου γεμίζει τον datareader.

                if (dr.Read())
                    Entity_ID = AdoNet.DrIdentity(dr, 0);
                dr.Close();

                return Enum.ReturnValues.Success;

            }
            catch (Exception ex)
            {
                //TODO LOG
                return Enum.ReturnValues.Fail;
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
                if (conn != null)
                {
                    conn.Close();
                }
            }
        }

     

    Οπώς έχω σημειώσει και παραπάνω το πρόβλημα μου είναι πως δεν γεμίζει το datareader.

    Χρησιμοποιώ SQL Server 2008 + Visual Studio 2008 + .net framework 3.5 + C# + Windows XP

     

    Ευχαριστώ.

  •  23-11-2010, 16:20 61063 σε απάντηση της 61061

    Απ: SQL insert with Parameters - δεν επιστρέφει αποτέλεσμα

    Καλησπέρα.
    Τι ακριβώς θα ήθελες να σου επιστρέψει?
    Το query που εκτελείς στην βάση κάνει ένα απλό Insert. Δεν επιστρέφει κάποιο result set.
    Ως συμβουλή το dynamic SQL δεν "συνιστάται". Αντικατέστησε το με μια stored procedure όπου στο τέλος θα έχεις και ένα 
    SELECT Query για να παίρνεις και τις τιμές που θέλεις.
    Ευχαριστώ.

    Κώστας Τσιώλης
  •  23-11-2010, 16:22 61064 σε απάντηση της 61061

    Απ: SQL insert with Parameters - δεν επιστρέφει αποτέλεσμα

    Δεν χρειάζεται ο DataReader γιατί κάνεις Insert. Αντί για το cmd.ExecuteReader(); βάλε cmb.ExecuteNonQuery();
    Iraklis Karagkiozoglou
  •  23-11-2010, 16:35 61066 σε απάντηση της 61064

    Απ: SQL insert with Parameters - δεν επιστρέφει αποτέλεσμα

    Παιδία ευχαριστώ για τις απαντήσεις σας.Τελικά έπρεπε να προσθέσω αυτο "SELECT SCOPE_IDENTITY()" στο sql μου ώστε να πάρω πίσω το id της εγραφής που πρόσθεσα.

     

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems